package com.jx.mlxg.utils;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;

public class DateUtil {

    /**
     * 获取当天开始时间
     * @return 本地时间对象
     */
    public static LocalDateTime getTodayStart() {
        return LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0);
    }

    /**
     * 获取当天结束时间
     * @return 本地时间对象
     */
    public static LocalDateTime getTodayEnd() {
        return LocalDateTime.now().withHour(23).withMinute(59).withSecond(59).withNano(999999999);
    }

    /**
     * 获取昨天开始时间
     * @return 本地时间对象
     */
    public static LocalDateTime getYesterdayStart() {
        return LocalDateTime.now().minusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
    }

    /**
     * 获取昨天结束时间
     * @return 本地时间对象
     */
    public static LocalDateTime getYesterdayEnd() {
        return LocalDateTime.now().minusDays(1).withHour(23).withMinute(59).withSecond(59).withNano(999999999);
    }

    /**
     * 获取七天前的时间
     * @return 本地时间对象
     */
    public static LocalDateTime getSevenDaysAgo() {
        return LocalDateTime.now().minusDays(7);
    }

    /**
     * 将时间戳（毫秒）转换为LocalDateTime对象
     * @param timestamp 时间戳（毫秒）
     * @return LocalDateTime对象
     */
    public static LocalDateTime convertToLocalDateTime(Long timestamp) {
        return Instant.ofEpochMilli(timestamp).atZone(ZoneId.systemDefault()).toLocalDateTime();
    }


}